Storage tiering is a technique of establishing a hierarchy of different storage types whereby different types of storage can be allocated to different tiers of the hierarchy. This enables storing the appropriate data to the appropriate tier, based on service level requirements, at a minimal cost. Each tier has different levels of protection, performance, and cost. For example, high performance solid state drives (SSDs) or Fibre Channel (FC) drives can be configured as tier 1 storage to keep frequently accessed data, and low cost Serial Advanced Technology Attachment (SATA) drives as tier 2 storage to keep the less frequently accessed data. Keeping frequently used data in SSD or FC drives improves application performance. Moving less-frequently accessed data to SATA drives can free up storage capacity in high performance drives and reduce the cost of storage. This movement of data happens based on different tiering policies. The tiering policy might be based on parameters, such as file type, size, frequency of access, etc.
However, existing storage tiering methods do not typically account for network latency which can cause performance problems in the data storage system. Such problems can lead to violations of a service level agreement between a data storage service provider and its customers (tenants).